<template>
    <span>
        <Button type="text" icon="md-help-circle" @click="alarm_plan_template_help_modal = true">点击查看模板语法</Button>
        <Modal v-model="alarm_plan_template_help_modal" title="告警消息模板语法" width="75">
            <div style="max-height: 500px;overflow-y: auto;">
                <p>示例：</p>
                <div style="background:#eee;padding: 10px;border:1px solid #ccc;"><pre><code>{{ alarm_template_help.example }}</code></pre></div>
                <p><br /></p>
                <p>语法格式：</p>
                <p><Tag>{{ alarm_template_help.exp }}</Tag>  只允许写表达式内容，不可在标签内写多行代码</p>
                <p><Tag>[类型标签]</Tag> 写在行开头，可针对不同类型使用不同的模板消息</p>
                <p>支持变量：</p>
                <p><Tag>alarm_type</Tag> 触发告警的类型，有<Tag>common</Tag> <Tag>maxtime</Tag> <Tag>maxcount</Tag>，测试时可以用类型<Tag>test</Tag></p>
                <p><Tag>device_id</Tag> 设备ID</p>
                <p><Tag>device_name</Tag> 设备名称，如果未设置设备名称则此值为设备ID</p>
                <p><Tag>device_ip</Tag> 设备IP</p>
                <p><Tag>plan_id</Tag> 告警计划ID</p>
                <p><Tag>plan_name</Tag> 告警计划名称</p>
                <p><Tag>maxtime</Tag> 最大允许断网时间（秒）</p>
                <p><Tag>maxcount</Tag> 最大断网次数</p>
                <p><Tag>rangetime</Tag> 时间范围，限定时间范围内达到断网次数则告警</p>
                <p><Tag>begintime</Tag> 开始生效时间</p>
                <p><Tag>endtime</Tag> 结束生效时间</p>
                <p><Tag>offlinetime</Tag> 最后一次断网时间</p>
                <p><Tag>offlinetime_list</Tag> 断网时间列表</p>
                <p><Tag>left_brace</Tag> 左中括号 {，如果模板内容中要多次出现左中括号可以使用此变量</p>
                <p><Tag>right_brace</Tag> 右中括号 }，如果模板内容中要多次出现右中括号可以使用此变量</p>
                <p>支持函数：</p>
                <p><Tag>format_seconds</Tag> 将秒数转换为由秒、分钟、小时、天、月、年表示的字符串</p>
                <p><Tag>datetime</Tag> 日期时间函数</p>
                <p><Tag>max</Tag> 最大值</p>
                <p><Tag>min</Tag> 最小值</p>
                <p>支持数学表达式，例如：</p>
                <p><Tag>1 + 1</Tag></p>
                <p><Tag>2 * 3</Tag></p>
            </div>
        </Modal>
    </span>
</template>

<script>
export default {
    name: 'AlarmTemplateHelpButton',
    data() {
        return {
            alarm_plan_template_help_modal: false,
            alarm_template_help: { // 辅助变量，避免解析 {{ 和 }}
                exp: '{{ 表达式 }}',
                example: '设备 {{ device_name }} 网络中断，请及时处理。（默认不加标签的是公共模板内容）\n[maxtime] 设备 {{ device_name }} 断网超过 {{ format_seconds(maxtime) }}\n[maxcount] 设备 {{ device_name }} 在 {{ format_seconds(rangetime) }} 内断网超过 {{ maxcount }} 次'
            },
        }
    }
}
</script>